package Interfaces;
import java.awt.FlowLayout;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import clases.Estudiante;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class frmEstudiante extends javax.swing.JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
	
	public JTextField txtCedula;
	public JTextField txtNombre;
	public JTextField txtApellido;
	public JLabel lblTitulo;
	public JLabel lblCedula;
	public JLabel lblNombre;
	public JLabel lblApellido;
	public JLabel lblFormatCed;
	public JButton btnIncluir;
	public JButton btnBuscar;
	public JButton btnLimpiar;
	public JButton btnSalir;
	public JButton btnEliminar;
    fmrMenu frmmenu= new fmrMenu();

	public frmEstudiante() {
		
		setLayout(new GridLayout(7,1));
		setSize(400,250);
		setTitle(".-.Seccion Laboratorio 1.-.");
		
		txtCedula = new JTextField(10);
		txtNombre = new JTextField(10);
		txtApellido = new JTextField(10);
		
		lblTitulo = new JLabel(".-. Datos de Estudiante .-.");
		lblCedula = new JLabel("Cedula:     ");
		lblNombre = new JLabel("Nombre:   ");
		lblApellido = new JLabel("Apellido:   ");
		btnIncluir = new JButton("Incluir ");
		btnEliminar = new JButton("Retirar ");
		btnLimpiar = new JButton(" Limpiar");
		btnBuscar = new JButton("Buscar");
		btnSalir = new JButton("    Salir   ");
		
		JPanel pnTitulo = new JPanel();
		JPanel panelnorte= new JPanel(new GridLayout(4,1));
		JPanel panel1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		JPanel pnNombre= new JPanel(new FlowLayout(FlowLayout.LEFT));
		JPanel pnApellido= new JPanel(new FlowLayout(FlowLayout.LEFT));
		JPanel pnSur = new JPanel(new GridLayout(3,1));
		JPanel panel2= new JPanel(new FlowLayout(FlowLayout.CENTER));
		
		pnTitulo.add(lblTitulo);
		panel1.add(lblCedula);
		panel1.add(txtCedula);
		panel1.add(btnBuscar);
		panelnorte.add(panel1);
		pnNombre.add(lblNombre);
		pnNombre.add(txtNombre);
		pnApellido.add(lblApellido);
		pnApellido.add(txtApellido);
		panel2.add(btnIncluir);
		panel2.add(btnEliminar);
		panel2.add(btnLimpiar);
		panel2.add(btnSalir);
		pnSur.add(panel2);
		
		
		add(pnTitulo);
		add(panel1);
		add(pnNombre);
		add(pnApellido);
		add(panel2);
		
		btnLimpiar.addActionListener(this);
		btnBuscar.addActionListener(this);
		btnSalir.addActionListener(this);
		btnIncluir.addActionListener(this);
		btnEliminar.addActionListener(this);
	
	}

	public void actionPerformed(ActionEvent accion) {
		if(accion.getSource()==this.btnIncluir){
			boolean resp,validarletras;
			resp=validarCampos();
			if(resp){
				validarletras=validarLetras(this.txtNombre.getText()+this.txtApellido.getText());
				if(validarletras){
				Estudiante estudiante=new Estudiante();
				estudiante.setCedula(this.txtCedula.getText());
				estudiante.setNombre(this.txtNombre.getText());
				estudiante.setApellido(this.txtApellido.getText());
				frmPrincipal.seccion.InscribirEstudiante(estudiante);	
				  JOptionPane.showMessageDialog(null,"El estudiante ha sido registrado exitosamente","Inscripcion del estudiante", 
							JOptionPane.INFORMATION_MESSAGE);
				  limpiar();
				}
				else
					 JOptionPane.showMessageDialog(null,"Debes introducir solo letras","Inscripcion del estudiante", 
								JOptionPane.ERROR_MESSAGE);
				
			}
			 else
		    	  JOptionPane.showMessageDialog(null,"Debe llenar todos los datos","Inscripcion del estudiante", 
							JOptionPane.INFORMATION_MESSAGE);
		}
		if(accion.getSource()==this.btnBuscar){
			boolean cedValida;
			if(!this.txtCedula.getText().equals("")){
				cedValida=validarCedula(this.txtCedula.getText());
				if(cedValida){
				boolean existe;
				existe=frmPrincipal.seccion.buscarCedula(this.txtCedula.getText());
				if(existe){
				Estudiante estudiante;
				estudiante=frmPrincipal.seccion.BuscarEstCed(this.txtCedula.getText());
				this.txtNombre.setText(estudiante.getNombre());
				this.txtApellido.setText(estudiante.getApellido());
				this.btnEliminar.setEnabled(true);
			    }
				else
			    	  JOptionPane.showMessageDialog(null,"La estudiante no se encuentra registrado","Buscar estudiante", 
								JOptionPane.INFORMATION_MESSAGE); 
				this.txtApellido.setEnabled(true);
				this.txtNombre.setEnabled(true);
				this.btnIncluir.setEnabled(true);
				this.txtCedula.setEditable(false);
			}
			else
				 JOptionPane.showMessageDialog(null,"Introduzca ocho digitos","Asignacion del estudiante", 
							JOptionPane.INFORMATION_MESSAGE);
			}
			else
		    	  JOptionPane.showMessageDialog(null,"Debe introducir la cedula","Buscar estudiante", 
							JOptionPane.INFORMATION_MESSAGE);
			 this.btnLimpiar.setEnabled(true);
		}
		if(accion.getSource()==this.btnEliminar){
			
			if(!this.txtCedula.getText().equals("")){
				boolean existe;
				existe=frmPrincipal.seccion.buscarCedula(this.txtCedula.getText());
				if(existe){
				frmPrincipal.seccion.RetirarEstudiante(this.txtCedula.getText());
				JOptionPane.showMessageDialog(null,"El estudiante ha sido retirado de la seccion","Eliminar estudiante", 
						JOptionPane.INFORMATION_MESSAGE);}
				else
					 JOptionPane.showMessageDialog(null,"El estudiante no esta registrado","Eliminar estudiante", 
								JOptionPane.INFORMATION_MESSAGE);
				
			}
			else
			    JOptionPane.showMessageDialog(null,"Debe introducir la cedula","Eliminar estudiante", 
								JOptionPane.INFORMATION_MESSAGE);
				}
		if(accion.getSource()==this.btnLimpiar){
			limpiar();
		}
		if(accion.getSource()==this.btnSalir){
			this.setVisible(false);
			frmmenu.setVisible(true);
			
		}
	
		
	}
	
			private boolean validarCampos()
			{
				boolean sw=false;
				if ((!this.txtCedula.getText().equals("")) && (!this.txtNombre.getText().equals("")) && (!this.txtApellido.getText().equals("")))
				    sw=true;
				return sw;
			}
			private void limpiar(){
				this.txtCedula.setText("");
				this.txtNombre.setText("");
				this.txtApellido.setText("");
				this.txtCedula.requestFocus(true);
				this.btnIncluir.setEnabled(false);
				this.btnEliminar.setEnabled(false);
				this.btnLimpiar.setEnabled(false);
				this.txtCedula.setEditable(true);	//frmPrincipal frmprincipal;
				
			}
			private boolean validarCedula(String Ced){
				boolean valida=false;
				int resp;
				String numero="0123456789";
				char caracter;
				if(Ced.length()==8){
			    for(int i=0;i<Ced.length();i++){
			    	caracter=Ced.charAt(i);
			        resp=numero.indexOf(caracter);
			    	if(resp!=-1)
			    	valida=true;
			      }
				}
				return valida;
					
			}
			private boolean validarLetras(String letras){
				boolean valida=true;
				int resp;
				String numero="0123456789";
				char caracter;
				if(letras.length()<60){
			    for(int i=0;i<letras.length();i++){
			    	caracter=letras.charAt(i);
			        resp=numero.indexOf(caracter);
			    	if(resp!=-1)
			    	valida=false;
			    	
			      }
					
			}
		
				return valida;	
			}
			

}
